package sv.com.bolsaTrabajo.view.bean.managedbeans;

import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.primefaces.context.RequestContext;
import sv.com.bolsaTrabajo.model.dao.TipoContratacionFacade;
import sv.com.bolsaTrabajo.model.entities.TipoContratacion;
import sv.com.bolsaTrabajo.view.bean.ManejadorAccion;

/**
 *
 * @author Karina Palacios
 */
@ManagedBean
@SessionScoped
public final class TipoContratacionMB extends ManejadorAccion {

    @EJB
    private TipoContratacionFacade tipoContratacionFacade;
    private TipoContratacion tipoContratacion;
    private List<TipoContratacion> tipoContrataciones;

    /**
     * Constructor
     */
    public TipoContratacionMB() {
        limpiarTipoContr();
        tipoContratacion = new TipoContratacion();
    }

    public void limpiarTipoContr() {
        setTipoContratacion(new TipoContratacion());
    }

    public List<TipoContratacion> getTipoContratacions() {
        tipoContrataciones = tipoContratacionFacade.obtenerTodos();
        return tipoContrataciones;
    }

    public void guardarEntidad() {
        try {
            System.out.println("====> Ingresando a crear Tipo Contratacion");
            getTipoContratacion().setFechaMod(new Date());

            if (tipoContratacion.getIdTipoContratacion()== null) {
                tipoContratacionFacade.crear(tipoContratacion);
                lanzarMensajeInformacion("Exito", "Tipo Contratación guardada correctamente");
            } else {
                tipoContratacionFacade.modificar(tipoContratacion);
                lanzarMensajeInformacion("Exito", "Tipo Contratación modificada correctamente");
            }
            RequestContext.getCurrentInstance().update("IDFrmTipoContratacion");
            RequestContext.getCurrentInstance().execute("WVDialogTipoContratacion.hide();");
        } catch (Exception e) {
            lanzarMensajeError("", "Error al guardar Tipo Contratación", e);
        }
    }

    public void modificarEntidad(TipoContratacion mod) {
        try {
            this.tipoContratacion = mod;
        } catch (Exception e) {
            lanzarMensajeError("Error al actualizar datos", "No se pueden asignar los valores para Tipo Contratación", e);
        }
        RequestContext.getCurrentInstance().update("");
    }

    /**
     * ****************** Getters and Setter ********************
     */
    public TipoContratacionFacade getTipoContratacionFacade() {
        return tipoContratacionFacade;
    }

    public void setTipoContratacionFacade(TipoContratacionFacade tipoContratacionFacade) {
        this.tipoContratacionFacade = tipoContratacionFacade;
    }

    public TipoContratacion getTipoContratacion() {
        return tipoContratacion;
    }

    public void setTipoContratacion(TipoContratacion tipoContratacion) {
        this.tipoContratacion = tipoContratacion;
    }

}
